perm filename TEST.PAL[HAL,HE] blob sn#183681 filedate 1975-10-31 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.TITLE GENERAL PURPOSE TEST ROUTINE WITHOUT THE KERNEL
C00003 00003	 program initialization
C00012 ENDMK
C⊗;
.TITLE GENERAL PURPOSE TEST ROUTINE WITHOUT THE KERNEL

.INSRT K1DEF.PAL[11,SYS]
.INSRT HALHED.PAL[HAL,HE]
.=INTRP
.INSRT HALIO.PAL[HAL,HE]
.INSRT GRAPH1.PAL[HAL,HE]
.INSRT SMALLB.PAL[HAL,HE]
;INSRT FBUG.PAL[1,BES]
;INSRT ARITH.PAL[HAL,HE]
;INSRT INTERP.PAL[HAL,HE]

;Data areas
	.BLKW 100
STACK:	.BLKW 1
ARG1:	.BLKW 32.	;Long enough for a trans
ARG2:	.BLKW 32.	;Long enough for a trans
RES:	.BLKW 32.	;Long enough for a trans

; program initialization

COMMENT ⊗  This is an old timing test routine:
START:	RESET
	MOV #500,SP	;initialize stack
	CLR PS		;initialize processor status
CLKIN:	CLR CLKCNT	;clear clock registers- trap restart
	CLR CLKSET
	CLR CLKS
	MOV #043400,R0	;No interrupts, single precision
	LDFPS R0	;Load Floating Processor Status
	MOV #16,R0	;Field length
	MOV #10,R1	;Decimal digits
	JSR PC,FORMAT	;
	MOV #STACK,R3	;Set up argument stack

TEST:	CRLF		;
	CRLF
	MOV #ARG1,R0	;
	JSR PC,SCALIN	;Get first argument
	MOV #ARG2,R0	;
	JSR PC,SCALIN	;Get second argument
	MOV #1000.,R4	;Do the test 1000 times
	CLR CLKSET	;
	MOV #21,CLKS	;Start counting up
TST1:	MOV #STACK,R3	;Set up argument stack
	MOV #ARG1,-(R3)	;Restore interpreter stack
	MOV #ARG2,-(R3)	;  with both arguments.
	JSR PC,SADD	;Call the routine under test
	SOB R4,TST1	;Do it over and over
	CLR CLKS	;Stop the clock
	MOV CLKCNT,R0	;R0 ← Number of 10 micros elapsed
	JSR PC,TYPDEC	;Print it.
	MOV (R3)+,R0	;
	JSR PC,SCLOUT	;Print answer
	BR TEST		;Over and over
⊗ End of old routine.

PATCH:  .BLKW 100

.END START